﻿function bindValidate(handler,form) {
    var valObj = {
        errorPlacement: function (error, element) {
            if (typeof (editor) != "undefined") {
                editor.sync(); //同步kindeditor中的数据到textbox中，这样才能通过js验证
            }

            var $errorEle;
            //因为服务器控件生成的属性可能包含关键字，所以查询的时候加上异常处理
            //规则1,id不会改变的
            try {
                $errorEle = $("#" + element.attr("id") + "-error");
            }
            catch (e) { }

            //规则2，radio组
            if ($errorEle.length == 0) {
                try {
                    $errorEle = $("#" + element.attr("name") + "-error")
                }
                catch (e) { }
            }

            //规则3.repeter中使用,直接在input上添加自定义属性error-id
            if ($errorEle.length == 0) {
                try {
                    if (element.attr('error-id') != undefined && element.attr('error-id').length > 0) {
                        $errorEle = $('#' + element.attr('error-id') + "-error");
                    }
                }
                catch (e) { }
            }

            //规则4.repeter中使用
            //是在需要验证的服务器控件下面加上一个隐藏域，
            //然后这个隐藏域的id与错误显示的span的id之间的规则是：span的id多一个-error
            if ($errorEle.length == 0) {
                try {
                    var $nextEle = element.next();
                    if ($nextEle.length > 0) {
                        var $errorEle = $('#' + $nextEle.attr('id') + "-error");
                    }
                }
                catch (e) { }
            }

            if ($errorEle.length > 0) { //显示错误信息
                $errorEle.replaceWith(error);
            }
        }
    };

    if (handler != null) {
        valObj.submitHandler = handler;
    }

    if (form == undefined) {
        $("#form1").validate(valObj);
    }
    else {
        $(form).validate(valObj);
    }
};